#pragma once
#include "Engine.h"
#include "Runtime/Platform/GenericApplication.h"
namespace Alice{
    class EngineLoop : public IEngineLoop{
    public:
        uint32 mCurrentFrameIndex;
        int32 Init() override;
        void Tick() override;
        void ClearPendingCleanupObjects() override;
        /**
         * Syncs the game thread based on progress throughout the rendering pipeline
         * @param bFullSync - when true, blocks the caller until all rendering work is completed,
         * otherwise only blocks until the N - m frame has completed, where m is driven by various config.
         */
        void Sync(bool bFullSync = false);
    };
}
extern "C" int32 EngineInit();
extern "C" void EngineTick();